User interface for custom patterned electrical stimulation

ABSTRACT

A neurostimulation system includes a programming control circuit and a user interface. The programming control circuit may be configured to generate a plurality of stimulation parameters controlling delivery of neurostimulation pulses according to one or more neurostimulation programs each specifying a pattern of the neurostimulation pulses. The user interface includes a display screen, a user input device, and a neurostimulation program circuit. The neurostimulation program circuit may be configured to allow for construction of one or more pulse trains (PTs) and one or more train groupings (TGs) of the one or more neurostimulation programs, and to allow for scheduling of delivery of the one or more neurostimulation programs, using the display screen and the user input device. Each PT includes one or more pulse blocks each including a plurality of pulses of the neurostimulation pulses. Each TG includes one or more PTs.

CLAIM OF PRIORITY

This application claims the benefit of priority under 35 U.S.C. §119(e)of U.S. Provisional Patent Application Ser. No. 62/198,957, filed onJul. 30, 2015, which is herein incorporated by reference in itsentirety.

TECHNICAL FIELD

This document relates generally to medical devices and more particularlyto a programming method and apparatus using a user interface that allowsa user to customize various patterns of electrical stimulation pulses.

BACKGROUND

Neurostimulation, also referred to as neuromodulation, has been proposedas a therapy for a number of conditions. Examples of neurostimulationinclude Spinal Cord Stimulation (SCS), Deep Brain Stimulation (DBS),Peripheral Nerve Stimulation (PNS), and Functional ElectricalStimulation (FES). Implantable neurostimulation systems have beenapplied to deliver such a therapy. An implantable neurostimulationsystem may include an implantable neurostimulator, also referred to asan implantable pulse generator (IPG), and one or more implantable leadseach including one or more electrodes. The implantable neurostimulatordelivers neurostimulation energy through one or more electrodes placedon or near a target site in the nervous system. An external programmingdevice is used to program the implantable neurostimulator withstimulation parameters controlling the delivery of the neurostimulationenergy.

In one example, the neurostimulation energy is delivered in the form ofelectrical neurostimulation pulses. The delivery is controlled usingstimulation parameters that specify spatial (where to stimulate),temporal (when to stimulate), and informational (patterns of pulsesdirecting the nervous system to respond as desired) aspects of a patternof neurostimulation pulses. Many current neurostimulation systems areprogrammed to deliver periodic pulses with one or a few uniformwaveforms continuously or in bursts. However, the human nervous systemsuse neural signals having much more sophisticated patterns tocommunicate various types of information, including sensations of pain,pressure, temperature, etc. The nervous system may interpret anartificial stimulation with a simple pattern of stimuli as an unnaturalphenomenon, and respond with an unintended and undesirable sensationand/or movement. For example, some neurostimulation therapies are knownto cause paresthesia and/or vibration of non-targeted tissue or organ.

Recent research has shown that the efficacy and efficiency of certainneurostimulation therapies can be improved, and their side-effects canbe reduced, by using patterns of neurostimulation pulses that emulatenatural patterns of neural signals observed in the human body. Whilemodern electronics can accommodate the need for generating suchsophisticated pulse patterns, the capability of a neurostimulationsystem depends on its post-manufacturing programmability to a greatextent. For example, a sophisticated pulse pattern may only benefit apatient when it is customized for that patient, and stimulation patternspredetermined at the time of manufacturing may substantially limit thepotential for the customization. Such customization may be performed atleast in part by a user such as a physician or other caregiver with thepatient in a clinical setting.

SUMMARY

An example (e.g., “Example 1”) of a neurostimulation system includes aprogramming control circuit and a user interface. The programmingcontrol circuit may be configured to generate a plurality of stimulationparameters controlling delivery of neurostimulation pulses according toone or more neurostimulation programs each specifying a pattern of theneurostimulation pulses. The user interface is coupled to theprogramming control circuit and includes a display screen, a user inputdevice, and a neurostimulation program circuit coupled to the displayscreen and the user input device. The neurostimulation program circuitmay include a program creation module configured to create buildingblocks for the one or more neurostimulation programs and a programscheduling module configured to schedule delivery of the one or moreneurostimulation programs. The program creation module may include apulse train (PT) construction module and a train grouping (TG)construction module. The PT construction module may be configured toallow for construction of one or more PTs using the display screen andthe user input device. The one or more PTs each include one or morepulse blocks (PBs) each including a plurality of pulses of theneurostimulation pulses. The TG construction module may be configured toallow for construction of one or more TGs using the display screen andthe user input device. The one or more TGs each include one or more PTs.

In Example 2, the subject matter of Example 1 may optionally beconfigured such that the display screen includes a touchscreen, and aportion of the user input device is integrated into the touchscreen.

In Example 3, the subject matter of any one or any combination ofExamples 1 and 2 may optionally be configured such that theneurostimulation program circuit is configured to display aneurostimulation program area on the screen in response to aneurostimulation programming command and to receive user commands usingthe user input device. The user commands include a program creationcommand and a program scheduling command.

In Example 4, the subject matter of Example 3 may optionally beconfigured such that the neurostimulation program circuit is configuredto display a program creation tab and a program scheduling tab on thescreen, to receive the program creation command when the programcreation tab is selected, and to receive the program scheduling commandwhen the program scheduling tab is selected.

In Example 5, the subject matter of any one or any combination ofExamples 3 and 4 may optionally be configured such that the programcreation module is configured to display a PT construction area and a TGconstruction area on the screen in response to the program creationcommand.

In Example 6, the subject matter of Example 5 may optionally beconfigured such that the PT construction module is configured to displaya PT of the one or more PTs on the PT construction area and allowdefinition of the plurality of pulses in each PB of the one or more PBsof the PT.

In Example 7, the subject matter of Example 6 may optionally beconfigured such that the TG construction module is configured to displaya TG of the one or more TGs on the TG construction area and allowdefinition of the TG as a sequence of PTs each selected from the one ormore PTs.

In Example 8, the subject matter of Example 7 may optionally beconfigured such that the TG construction module is configured to allowspecification of a number of repetitions for the one or more PBs of eachPT of the sequence of PTs.

In Example 9, the subject matter of any one or any combination ofExamples 7 and 8 may optionally be configured such that the TGconstruction module is configured to allow specification of an order ofthe one or more PBs of each PT of the sequence of PTs.

In Example 10, the subject matter of any one or any combination ofExamples 3 to 9 may optionally be configured such that the programscheduling module is configured to display a program scheduling area onthe screen in response to the program scheduling command and to allowscheduling of each program of the one or more neurostimulation programsincluding time of delivery for each TG of the one or more TGs in theeach program.

In Example 11, the subject matter of Example 10 may optionally beconfigured such that the program scheduling module is configured toallow specification of a frequency of delivery of the each program.

In Example 12, the subject matter of any one or any combination ofExamples 10 and 11 may optionally be configured such that the programscheduling module is configured to allow scheduling on a plurality ofprograms of the one or more neurostimulation programs to be deliveredsimultaneously.

In Example 13, the subject matter of any one or any combination ofExamples 1 to 12 may optionally be configured to further include astorage device including a PT library having one or more stored PTs, andthe PT construction module is configured to allow use of the one or morestored PTs in the construction of the one or more PTs and to allow eachnewly constructed PT of the one or more PTs to be added to the one ormore stored PTs in the PT library.

In Example 14, the subject matter of Example 13 may optionally beconfigured such that the storage device further comprises a TG libraryhaving one or more stored TGs, and the TG construction module isconfigured to allow use of the one or more stored TGs in theconstruction of the one or more TGs and to allow each newly constructedTG of the one or more TGs to be added to the one or more stored TGs inthe TG library.

In Example 15, the subject matter of any one or any combination ofExamples 13 and 14 may optionally be configured such that the storagedevice further comprises a program library having one or more scheduledprograms, and the program scheduling module is configured to allow toschedule a new program by rescheduling a scheduled program of the one ormore scheduled programs and to allow each newly scheduled program to beadded to the one or more scheduled programs in the program library.

An example of a method (e.g., Example 16″) for deliveringneurostimulation pulses is also provided. The method includes displayinga neurostimulation program area on a user interface and generating aplurality of stimulation parameters controlling delivery of theneurostimulation pulses based on one or more neurostimulation programseach specifying a pattern of the neurostimulation pulses. Theneurostimulation program area allows a user to create building blocksfor the one or more neurostimulation programs and to schedule deliveryof the one or more neurostimulation programs. The one or more buildingblocks include one or more pulse blocks (PBs) each including a pluralityof pulses of the neurostimulation pulses, one or more pulse trains (PTs)each including one or more PBs, and one or more train groupings (TGs)each including one or more PTs.

In Example 17, the subject matter of Example 16 may optionally furtherinclude delivering the neurostimulation pulses using an implantablemedical device.

In Example 18, the subject matter of Example 16 may optionally includereceiving user commands from the user using the user interface, the usercommands including a program creation command and a program schedulingcommand.

In Example 19, the subject matter of Example 18 may optionally includedisplaying a program creation tab and a program scheduling tab on thescreen, receiving the program creation command when the program creationtab is selected, and receiving the program scheduling command when theprogram scheduling tab being selected.

In Example 20, the subject matter of Example 19 may optionally includedisplaying a PT construction area and a TG construction area on thescreen in response to the program creation command, receiving from theuser a selection of a PT from the one or more PTs, displaying theselected PT in the PT construction area, allowing the user to define theplurality of pulses in each PB of the one or more PBs of the selectedPT, receiving from the user a selection of a TG from the one or moreTGs, displaying the selected TG in the TG construction area, andallowing the user to define the TG as a sequence of PTs each selectedfrom the one or more PTs.

In Example 21, the subject matter of Example 20 may optionally includereceiving from the user a number of repetitions for the one or more PBsof each PT of the sequence of PTs.

In Example 22, the subject matter of Example 21 may optionally includereceiving from the user an order of the one or more PBs of each PT ofthe sequence of PTs.

In Example 23, the subject matter of Example 19 may optionally includedisplaying a program scheduling area on the screen in response to theprogramming scheduling command, receiving from the user a selection of aprogram from the one or more neurostimulation programs, displaying theselected program in the program scheduling area, and allowing the userto schedule the selected program, including specifying time of deliveryfor each TG of the one or more TGs in the each program.

In Example 24, the subject matter of Example 23 may optionally includeallowing the user to specify a frequency of delivery of the eachprogram.

In Example 25, the subject matter of Example 23 may optionally includereceiving from the user he user to schedule a plurality ofneurostimulation programs of the one or more neurostimulation programsto be run simultaneously.

This Summary is an overview of some of the teachings of the presentapplication and not intended to be an exclusive or exhaustive treatmentof the present subject matter. Further details about the present subjectmatter are found in the detailed description and appended claims. Otheraspects of the disclosure will be apparent to persons skilled in the artupon reading and understanding the following detailed description andviewing the drawings that form a part thereof, each of which are not tobe taken in a limiting sense. The scope of the present disclosure isdefined by the appended claims and their legal equivalents.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawings illustrate generally, by way of example, variousembodiments discussed in the present document. The drawings are forillustrative purposes only and may not be to scale.

FIG. 1 illustrates an embodiment of a neurostimulation system.

FIG. 2 illustrates an embodiment of a stimulation device and a leadsystem, such as may be implemented in the neurostimulation system ofFIG. 1.

FIG. 3 illustrates an embodiment of a programming device, such as may beimplemented in the neurostimulation system of FIG. 1.

FIG. 4 illustrates an implantable neurostimulation system and portionsof an environment in which the system may be used.

FIG. 5 illustrates an embodiment of an implantable stimulator and one ormore leads of an implantable neurostimulation system, such as theimplantable system of FIG. 4.

FIG. 6 illustrates an embodiment of an external programming device of animplantable neurostimulation system, such as the external system of FIG.4.

FIG. 7 is an illustration of an embodiment of a program creation area ona display screen of a graphical user interface (GUI).

FIG. 8 is an illustration of an embodiment of a program scheduling areaon a display screen of the GUI.

FIG. 9 illustrates an embodiment of a neurostimulation program circuitof an external programming device, such as the external programmingdevice of FIG. 6.

FIG. 10 illustrates an embodiment of a method for creating andscheduling neurostimulation programs.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying drawings which form a part hereof, and in which is shown byway of illustration specific embodiments in which the invention may bepracticed. These embodiments are described in sufficient detail toenable those skilled in the art to practice the invention, and it is tobe understood that the embodiments may be combined, or that otherembodiments may be utilized and that structural, logical and electricalchanges may be made without departing from the spirit and scope of thepresent invention. References to “an”, “one”, or “various” embodimentsin this disclosure are not necessarily to the same embodiment, and suchreferences contemplate more than one embodiment. The following detaileddescription provides examples, and the scope of the present invention isdefined by the appended claims and their legal equivalents.

This document discusses a method and system for programmingneurostimulation pulse patterns using a user interface, such as agraphical user interface (GUI). Advancements in neuroscience andneurostimulation research have led to a demand for using complex and/orindividually optimized patterns of neurostimulation pulses for varioustypes of therapies. The capability of a neurostimulation system intreating various types of disorders will be limited by theprogrammability of such patterns of neurostimulation pulses. In variousembodiments, the present system allows for custom definition of apattern of neurostimulation pulses, which includes custom definition ofwaveforms being the building blocks of the pattern. Such customdefinition is achieved by using a user interface that makes it possiblefor the user to perform the custom definition of potentially verycomplex patterns of neurostimulation pulses by creating and editinggraphical representations of relatively simple individual buildingblocks for each of the patterns. In various embodiments, theindividually definable waveforms may include pulses, pulse blocks eachincluding a burst of pulses, pulse trains each including a sequence ofpulse blocks, train groups each including a sequence of pulse trains,and neurostimulation programs (also referred to as “programs” in thisdocument) each including one or more train groups scheduled fordelivery. In various embodiments, the present system provides forpatterns of neurostimulation pulses not limited to waveforms predefinedat the time of manufacturing, thereby accommodating need forcustomization of neurostimulation pulse patterns as well as need for newtypes of neurostimulation pulse patterns that may, for example, resultfrom future research in neurostimulation. This may also facilitatedesign of a general-purpose neurostimulation device that can beconfigured by a user for delivering specific types of neurostimulationtherapies by programming the device using the user interface.

In various embodiments, the present subject matter may be implementedusing is a combination of hardware and software designed to provideusers such as physicians of other caregivers with ability to createcustom waveforms and patterns in an effort to increase therapeuticefficacy and/or patient satisfaction for neurostimulation therapies,including but not being limited to SCS and DBS therapies. Whileneurostimulation is specifically discussed as an example, the presentsubject matter may apply to any therapy that employs stimulation pulsesof electrical or other form of energy.

FIG. 1 illustrates an embodiment of a neurostimulation system 100.System 100 includes electrodes 106, a stimulation device 104, and aprogramming device 102. Electrodes 106 are configured to be placed on ornear one or more neural targets in a patient. Stimulation device 104 isconfigured to be electrically connected to electrodes 106 and deliverneurostimulation energy, such as in the form of electrical pulses, tothe one or more neural targets though electrodes 106. The delivery ofthe neurostimulation is controlled by using a plurality of stimulationparameters, such as stimulation parameters specifying a pattern of theelectrical pulses and a selection of electrodes through which each ofthe electrical pulses is delivered. In various embodiments, at leastsome parameters of the plurality of stimulation parameters areprogrammable by a user, such as a physician or other caregiver whotreats the patient using system 100. Programming device 102 provides theuser with accessibility to the user-programmable parameters. In variousembodiments, programming device 102 is configured to be communicativelycoupled to stimulation device via a wired or wireless link.

In various embodiments, programming device 102 includes a user interfacethat allows the user to set and/or adjust values of theuser-programmable parameters by creating and/or editing graphicalrepresentations of various waveforms. Such waveforms may include, forexample, the waveform of a pattern of neurostimulation pulses to bedelivered to the patient as well as individual waveforms that are usedas building blocks of the pattern of neurostimulation pulses. Examplesof such individual waveforms include pulses, pulse groups, and groups ofpulse groups, as further discussed below. The user may also be allowedto define an electrode selection specific to each individually definedwaveform. In the illustrated embodiment, the user interface includes aGUI 110. While a GUI is specifically discussed as an example of the userinterface of the present system, any type of user interfaceaccommodating various functions of the GUI as discussed in this documentcan be used as the user interface of the present system.

FIG. 2 illustrates an embodiment of a stimulation device 204 and a leadsystem 208, such as may be implemented in neurostimulation system 100.Stimulation device 204 represents an embodiment of stimulation device104 and includes a stimulation output circuit 212 and a stimulationcontrol circuit 214. Stimulation output circuit 212 produces anddelivers neurostimulation pulses. Stimulation control circuit 214controls the delivery of the neurostimulation pulses using the pluralityof stimulation parameters, which specifies a pattern of theneurostimulation pulses. Lead system 208 includes one or more leads eachconfigured to be electrically connected to stimulation device 204 and aplurality of electrodes 206 distributed in the one or more leads. Theplurality of electrodes 206 includes electrode 206-1, electrode 206-2, .. . electrode 206-N, each a single electrically conductive contactproviding for an electrical interface between stimulation output circuit212 and tissue of the patient, where N≧2. The neurostimulation pulsesare each delivered from stimulation output circuit 212 through a set ofelectrodes selected from electrodes 206. In various embodiments, theneurostimulation pulses may include one or more individually definedpulses, and the set of electrodes may be individually definable by theuser for each of the individually defined pulses.

In various embodiments, the number of leads and the number of electrodeson each lead depend on, for example, the distribution of target(s) ofthe neurostimulation and the need for controlling the distribution ofelectric field at each target. In one embodiment, lead system 208includes 2 leads each having 8 electrodes.

FIG. 3 illustrates an embodiment of a programming device 302, such asmay be implemented in neurostimulation system 100. Programming device302 represents an embodiment of programming device 102 and includes astorage device 318, a programming control circuit 316, and a GUI 310.Storage device 318 stores a plurality of individually definablewaveforms. Programming control circuit 316 generates the plurality ofstimulation parameters that controls the delivery of theneurostimulation pulses according to the pattern of the neurostimulationpulses. GUI 310 represents an embodiment of GUI 110 and allows the userto define the pattern of the neurostimulation pulses using one or morewaveforms selected from the plurality of individually definablewaveforms.

In various embodiments, GUI 310 includes a neurostimulation programcircuit 320 that creates neurostimulation programs and schedulesdelivery of the neurostimulation programs. In various embodiments,neurostimulation program circuit 320 allows the user to create eachneurostimulation program using individually definable waveforms orbuilding blocks such as pulses, pulse blocks each including a burst ofpulses, pulse trains each including a sequence of pulse blocks, andtrain groupings each including a sequence of pulse trains. In variousembodiments, neurostimulation program circuit 320 allows the user toschedule delivery of each neurostimulation program, such as byspecifying delivery time for certain building blocks and a frequency atwhich the program is delivered. In various embodiments, neurostimulationprogram circuit 320 allows the user to create each building block orprogram using one or more waveforms stored in storage device 318 astemplates. In various embodiments, neurostimulation program circuit 320allows each newly created building block or program to be saved asadditional waveforms stored in storage device 318.

In one embodiment, GUI 310 includes a touchscreen. In variousembodiments, GUI 310 includes any type of presentation device, such asinteractive or non-interactive screens, and any type of user inputdevices that allow the user to edit the waveforms or building blocks andschedule the programs, such as touchscreen, keyboard, keypad, touchpad,trackball, joystick, and mouse. In various embodiments, circuits ofneurostimulation 100, including its various embodiments discussed inthis document, may be implemented using a combination of hardware andsoftware. For example, the circuit of GUI 100, stimulation controlcircuit 214, and programming control circuit 316, including theirvarious embodiments discussed in this document, may be implemented usingan application-specific circuit constructed to perform one or moreparticular functions or a general-purpose circuit programmed to performsuch function(s). Such a general-purpose circuit includes, but is notlimited to, a microprocessor or a portion thereof, a microcontroller orportions thereof, and a programmable logic circuit or a portion thereof.

FIG. 4 illustrates an implantable neurostimulation system 400 andportions of an environment in which system 400 may be used. System 400includes an implantable system 422, an external system 402, and atelemetry link 426 providing for wireless communication betweenimplantable system 422 and external system 402. Implantable system 422is illustrated in FIG. 4 as being implanted in the patient's body 499.

Implantable system 422 includes an implantable stimulator (also referredto as an implantable pulse generator, or IPG) 404, a lead system 424,and electrodes 406, which represent an embodiment of stimulation device204, lead system 208, and electrodes 206, respectively. External system402 represents an embodiment of programming device 302. In variousembodiments, external system 402 includes one or more external(non-implantable) devices each allowing the user and/or the patient tocommunicate with implantable system 422. In some embodiments, external402 includes a programming device intended for the user to initializeand adjust settings for implantable stimulator 404 and a remote controldevice intended for use by the patient. For example, the remote controldevice may allow the patient to turn implantable stimulator 404 on andoff and/or adjust certain patient-programmable parameters of theplurality of stimulation parameters.

FIG. 5 illustrates an embodiment of implantable stimulator 404 and oneor more leads 424 of an implantable neurostimulation system, such asimplantable system 422. Implantable stimulator 404 may include a sensingcircuit 530 that is optional and required only when the stimulator has asensing capability, stimulation output circuit 212, a stimulationcontrol circuit 514, an implant storage device 532, an implant telemetrycircuit 534, and a power source 536. Sensing circuit 530, when includedand needed, senses one or more physiological signals for purposes ofpatient monitoring and/or feedback control of the neurostimulation.Examples of the one or more physiological signals includes neural andother signals each indicative of a condition of the patient that istreated by the neurostimulation and/or a response of the patient to thedelivery of the neurostimulation. Stimulation output circuit 212 iselectrically connected to electrodes 406 through lead 424, and deliverseach of the neurostimulation pulses through a set of electrodes selectedfrom electrodes 406. Stimulation control circuit 514 represents anembodiment of stimulation control circuit 214 and controls the deliveryof the neurostimulation pulses using the plurality of stimulationparameters specifying the pattern of the neurostimulation pulses. In oneembodiment, stimulation control circuit 514 controls the delivery of theneurostimulation pulses using the one or more sensed physiologicalsignals. Implant telemetry circuit 534 provides implantable stimulator404 with wireless communication with another device such as a device ofexternal system 402, including receiving values of the plurality ofstimulation parameters from external system 402. Implant storage device532 stores values of the plurality of stimulation parameters. Powersource 536 provides implantable stimulator 404 with energy for itsoperation. In one embodiment, power source 536 includes a battery. Inone embodiment, power source 536 includes a rechargeable battery and abattery charging circuit for charging the rechargeable battery. Implanttelemetry circuit 534 may also function as a power receiver thatreceives power transmitted from external system 402 through an inductivecouple.

In various embodiments, sensing circuit 530 (if included), stimulationoutput circuit 212, stimulation control circuit 514, implant telemetrycircuit 534, implant storage device 532, and power source 536 areencapsulated in a hermetically sealed implantable housing. In variousembodiments, lead(s) 424 are implanted such that electrodes 406 areplaces on and/or around one or more targets to which theneurostimulation pulses are to be delivered, while implantablestimulator 404 is subcutaneously implanted and connected to lead(s) 424at the time of implantation.

FIG. 6 illustrates an embodiment of an external programmer 602 of animplantable neurostimulation system, such as external system 402.External programmer 602 represents an embodiment of programming device302, and includes an external telemetry circuit 640, an external storagedevice 618, a programming control circuit 616, and a GUI 610.

External telemetry circuit 640 provides external programmer 602 withwireless communication with another device such as implantablestimulator 404 via telemetry link 426, including transmitting theplurality of stimulation parameters to implantable stimulator 404. Inone embodiment, external telemetry circuit 640 also transmits power toimplantable stimulator 404 through the inductive couple.

External storage device 618 stores a plurality of individually definablewaveforms each selectable for use as a portion of the pattern of theneurostimulation pulses. In various embodiments, each waveform of theplurality of individually definable waveforms includes one or morepulses of the neurostimulation pulses, and may include one or more otherwaveforms of the plurality of individually definable waveforms. Examplesof such waveforms include pulses, pulse blocks, pulse trains, and traingroupings, and programs, as discussed below with reference to FIGS. 7and 8. External storage device 618 also stores a plurality ofindividually definable fields. Each waveform of the plurality ofindividually definable waveforms is associated with one or more fieldsof the plurality of individually definable fields. Each field of theplurality of individually definable fields is defined by one or moreelectrodes of the plurality of electrodes through which a pulse of theneurostimulation pulses is delivered and a current distribution of thepulse over the one or more electrodes.

Programming control circuit 616 represents an embodiment of programmingcontrol circuit 316 and generates the plurality of stimulationparameters, which is to be transmitted to implantable stimulator 404,based on the pattern of the neurostimulation pulses. The pattern isdefined using one or more waveforms selected from the plurality ofindividually definable waveforms stored in external storage device 618.In various embodiment, programming control circuit 616 checks values ofthe plurality of stimulation parameters against safety rules to limitthese values within constraints of the safety rules. In one embodiment,the safety rules are heuristic rules.

GUI 610 represents an embodiment of user interface 310 and allows theuser to define the pattern of neurostimulation pulses and performvarious other monitoring and programming tasks. GUI 610 includes adisplay screen 642, a user input device 644, and an interface controlcircuit 640. Display screen 642 may include any type of interactive ornon-interactive screens, and user input device 644 may include any typeof user input devices that supports the various functions discussed inthis document, such as touchscreen, keyboard, keypad, touchpad,trackball, joystick, and mouse. In one embodiment, GUI 610 includes aninteractive screen that displays a graphical representation of astimulation waveform and allows the user to adjust the waveform bygraphically editing the waveform and/or various building blocks of thewaveform. GUI 610 may also allow the user to perform any other functionsdiscussed in this document where graphical editing is suitable as may beappreciated by those skilled in the art.

Interface control circuit 640 controls the operation of GUI 610including responding to various inputs received by user input device 644and defining the one or more stimulation waveforms. Interface controlcircuit 640 includes neurostimulation control circuit 320.

In various embodiments, external programming device 602 has operationmodes including a composition mode and a real-time programming mode.Under the composition mode (also known as the pulse pattern compositionmode), GUI 610 is activated, while programming control circuit 616 isinactivated. Programming control circuit 616 does not dynamicallyupdates values of the plurality of stimulation parameters in response toany change in the one or more stimulation waveforms. Under the real-timeprogramming mode, both GUI 610 and programming control circuit 616 areactivated. Programming control circuit 616 dynamically updates values ofthe plurality of stimulation parameters in response to changes in theset of one or more stimulation waveforms, and transmits the plurality ofstimulation parameters with the updated values to implantable stimulator404.

FIG. 7 is an illustration of an embodiment of a program creation area ona display screen of a GUI, such as on display screen 642 of GUI 610. Inthe illustrated embodiment, the program creation area is displayed inresponse to a program creation tab being selected, and includes a pulsetrain (PT) construction area and a train grouping (TG) constructionarea.

In the illustrated embodiment, a neurostimulation program includes oneor more TGs. Each TG includes one or more PTs. An inter-train pause maybe introduced between adjacent PTs in a TG. Each PT includes one or morepulse blocks (PBs). Order of PBs in each PT may be programmable, such asselectable from a predetermined order and a randomized. Number ofrepetition of PBs in each PT may be programmable. Each PB includes aplurality of pulses. Programmable parameters associated with the PBsinclude pulse frequency, total pulses (TP), inter-block pause (IP),global amplitude, pulse shape, and lead (field) through which the pulsesare delivered to the patient.

In the illustrated embodiment, the PT construction area includes a Loadbutton and a Save button. The Load button allows for loading of a storedPT, such as from external storage device 618. The stored PT may be usedas a template in creating a new PT. The Save button allows for saving acreated PT, such as in external storage device 618. The TG constructionarea includes a Load button and a Save button. The Load button allowsfor loading of a stored TG, such as from external storage device 618.The stored TG may be used as a template in creating a new TG. The Savebutton allows for saving a created TG, such as in external storagedevice 618.

FIG. 8 is an illustration of an embodiment of a program scheduling areaon a display screen of the GUI, such as on display screen 642 of GUI610. In the illustrated embodiment, the program scheduling area isdisplayed in response to a program scheduling tab being selected, andallows for scheduling delivery of one or more neurostimulation programs.

In the illustrated embodiment, scheduling delivery for each programincludes specifying time of delivery for each TG in a program. Thisincludes specifying time of a day for starting the delivery of a TG andtime of the day for ending the delivery of the TG. In an alternativeembodiment, a predetermined duration for the delivery of the TG may bespecified, in place of the time of the day for ending the delivery ofthe TG.

In the illustrated embodiment, scheduling delivery for each programfurther includes specifying a frequency of delivery of the program. Thisincludes selecting weekly settings (days of a week on which the programis to be delivered), repetition (the program to be delivered weekly,biweekly, or monthly), and whether the program is enabled (selected fordelivery). Multiple programs may be enabled simultaneously forsimultaneous or concurrent delivery.

In the illustrated embodiment, the program scheduling area includes aLoad button and a Save button. The Load button allows for loading of astored scheduled program, such as from external storage device 618. Thestored scheduled program may be used as a template in scheduling a newprogram. The Save button allows for saving a scheduled program, such asin external storage device 618.

FIG. 9 illustrates an embodiment of a neurostimulation program circuit920 of an external programming device, such as the external programmingdevice 602. Neurostimulation program circuit 920 is an embodiment ofneurostimulation program circuit 320 and includes a program creationmodule 950 and a program scheduling module 952. In various embodiments,neurostimulation program circuit 920 displays a neurostimulation programarea on a display screen, such as display screen 642, in response to aneurostimulation programming command. For example, a user may initiate aprogramming session for an implantable stimulator by clicking on an iconto open a neurostimulation program window such as illustrated in FIGS. 7and 8. The neurostimulation program area or window includes the programcreation tab and the program scheduling tab such as illustrated in FIGS.7 and 8. Neurostimulation program circuit 920 receives the programcreation command when the program creation tab is selected (e.g.,clicked on) by the user, and receives the program scheduling commandwhen the program scheduling tab is selected (e.g., clicked on) by theuser.

In response to the program creation command, program creation module 950displays a PT construction area and TG construction area on the displayscreen. In the embodiment as illustrated in FIG. 7, the PT and TGconstruction areas are displayed simultaneously.

PT construction module 954 allows construction of one or more PTs usingthe PT construction area. In various embodiments, PT construction module954 allows for (1) adding a PB to a PT and subtracting a PB from the PT,with the PT construction area dynamically updated to reflect the change;(2) cycling through and/or defining different PTs; (3) assigning leadsand electrodes (stimulation field) and pulse shape to each PT; (4)specifying cathode(s) and anode(s), such as by clicking on a PB symboldisplayed as illustrated in GIG. 7; and (5) loading a PT from the PTlibrary, and saving a newly created PT in the PT library.

TG construction module 965 allows construction of one or more TGs usingthe TG scheduling area. In various embodiments, TG construction module954 allows for (1) cycling through and/or defining different TGs; (2)adding one or more PTs and/or stimulation pauses (SPs) to the TG; (3)modify the order of the PTs and/or SPs in the TG, such as by clickingand dragging; (4) PTs and SPs snap to circle; (5) randomization of theorder of PBs within a PT; and (6) loading a TG from the TG library, andsaving a newly created TG in the TG library.

In response to the programming scheduling command, program schedulingmodule 952 displays the program scheduling area on the display screen.In various embodiments, TG construction module 954 allows for (1)specification of at least a starting time for each TG in aneurostimulation program; (2) allow multiple programs to be selected tobe delivered simultaneously: and loading a program from the programlibrary, and saving a newly scheduled program in the program library.

FIG. 10 illustrates an embodiment of a method 1000 for creating andscheduling neurostimulation programs. In one embodiment, method 1000 isperformed using system 100, including the various embodiments of itscomponents as discussed in this document. For example, GUI 610 andneurostimulation program circuit 320 or 920 may be configured forperforming method 1000.

At 1002, a neurostimulation program area is displayed on a GUI. Theneurostimulation program area allows a user such as a physician or othercaregiver to create building blocks for one or more neurostimulationprograms and to schedule delivery of the one or more programs. Theprograms each specify a pattern of the neurostimulation pulses. The oneor more building blocks includes one or more PBs each including aplurality of pulses of the neurostimulation pulses, one or more PTs eachincluding one or more PBs, and one or more TGs each including one ormore PTs, as discussed above with reference to FIGS. 7 and 8.

At 1004, a program creation command or a program scheduling command isreceived from the user using the GUI. In response to a program creationcommand being received at 1004, a PT construction area is displayed at1006, selection of a PT from the one or more PTs is received from theuser at 1008, the selected PT is displayed in the PT construction areaat 1010, and definition of the selected PT as a sequence of PB(s) isallowed to be performed by the user. Also in response to the programcreation command being received at 1004, a TG construction area isdisplayed at 1014, selection of a TG from the one or more TGs isreceived from the user at 1016, the selected TG is displayed in the TGconstruction area at 1018, and definition of the selected TG as asequence of PT(s) is allowed to be performed by the user. In variousembodiments, when defining a TG, the user is allowed to specify thenumber of repetitions for the one or more PBs of each PT in the TG. Invarious embodiments, when defining the TG, the user is also allowed tospecify an order (including a random order) of the one or more PBs ofeach PT in the TG.

In response to a program scheduling command being received at 1004, aprogram scheduling area is displayed at 1022, selection of a programfrom the one or more programs is received from the user at 1024, theselected program is displayed in the program scheduling area at 1026,and scheduling of the selected program is allowed to be performed by theuser at 1028. In various embodiments, scheduling a program includesspecifying time of delivery for each TG in the program. In variousembodiments, the user is also allowed to specify a frequency of deliveryof the program. In various embodiments, the user is allowed to selectmultiple programs to be run simultaneously.

At 1030, stimulation parameters are generated based on the scheduledprogram(s). In various embodiments, the stimulation parameters aretransmitted to an implantable medical device, such as implantablestimulator 404, and used to control delivery of neurostimulation pulsesfrom the implantable medical device.

It is to be understood that the above detailed description is intendedto be illustrative, and not restrictive. Other embodiments will beapparent to those of skill in the art upon reading and understanding theabove description. The scope of the invention should, therefore, bedetermined with reference to the appended claims, along with the fullscope of equivalents to which such claims are entitled.

What is claimed is:
 1. A neurostimulation system, comprising: aprogramming control circuit configured to generate a plurality ofstimulation parameters controlling delivery of neurostimulation pulsesaccording to one or more neurostimulation programs each specifying apattern of the neurostimulation pulses; and a user interface coupled tothe programming control circuit and including a display screen, a userinput device, and a neurostimulation program circuit coupled to thedisplay screen and the user input device, the neurostimulation programcircuit configured to create building blocks for the one or moreneurostimulation programs and to schedule delivery of the one or moreneurostimulation programs, wherein the building blocks include one ormore pulse trains (PTs) and one or more train groupings (TGs), the oneor more PTs each include one or more pulse blocks (PBs) each including aplurality of pulses of the neurostimulation pulses, the one or more TGseach include one or more PTs, and the neurostimulation program circuitis configured to allow for construction of the one or more PTs and theone or more TGs using the display screen and the user input device. 2.The system of claim 1, wherein the display screen comprises atouchscreen, and a portion of the user input device is integrated intothe touchscreen.
 3. The system of claim 1, wherein the neurostimulationprogram circuit is configured to display a neurostimulation program areaon the screen in response to a neurostimulation programming command andto receive user commands using the user input device, the user commandsincluding a program creation command and a program scheduling command.4. The system of claim 3, wherein the neurostimulation program circuitis configured to display a program creation tab and a program schedulingtab on the screen, to receive the program creation command when theprogram creation tab is selected, and to receive the program schedulingcommand when the program scheduling tab is selected.
 5. The system ofclaim 3, wherein the neurostimulation program circuit is configured todisplay a PT construction area and a TG construction area on the screenin response to the program creation command.
 6. The system of claim 5,wherein the neurostimulation program circuit is configured to display aprogram scheduling area on the screen in response to the programscheduling command and to allow scheduling of each program of the one ormore neurostimulation programs including time of delivery for each TG ofthe one or more TGs in the each program.
 7. The system of claim 6,wherein the neurostimulation program circuit is configured to allowscheduling on a plurality of programs of the one or moreneurostimulation programs to be delivered simultaneously.
 8. The systemof claim 1, further comprising a storage device including a PT libraryhaving one or more stored PTs, and the neurostimulation program circuitis configured to allow use of the one or more stored PTs in theconstruction of the one or more PTs, and to allow each newly constructedPT of the one or more PTs to be added to the one or more stored PTs inthe PT library.
 9. The system of claim 1, wherein the storage devicefurther comprises a TG library having one or more stored TGs, and theneurostimulation program circuit is configured to allow use of the oneor more stored TGs in the construction of the one or more TGs, and toallow each newly constructed TG of the one or more TGs to be added tothe one or more stored TGs in the TG library.
 10. The system of claim 1,wherein the storage device further comprises a program library havingone or more scheduled programs, and the neurostimulation program circuitis configured to allow to schedule a new program by rescheduling ascheduled program of the one or more scheduled programs and to alloweach newly scheduled program to be added to the one or more scheduledprograms in the program library.
 11. A method for deliveringneurostimulation pulses, comprising: displaying a neurostimulationprogram area on a user interface, the neurostimulation program areaallowing a user to create building blocks for one or moreneurostimulation programs each specifying a pattern of theneurostimulation pulses and to schedule delivery of the one or moreneurostimulation programs, the one or more building blocks including oneor more pulse blocks (PBs) each including a plurality of pulses of theneurostimulation pulses, one or more pulse trains (PTs) each includingone or more PBs, and one or more train groupings (TGs) each includingone or more PTs; generating a plurality of stimulation parameterscontrolling delivery of the neurostimulation pulses based on the one ormore neurostimulation programs.
 12. The method of claim 11, furthercomprising delivering the neurostimulation pulses using an implantablemedical device.
 13. The method of claim 11, comprising receiving usercommands from the user using the user interface, the user commandsincluding a program creation command and a program scheduling command.14. The method of claim 11, comprising: displaying a program creationtab and a program scheduling tab on the screen; receiving the programcreation command when the program creation tab is selected; andreceiving the program scheduling command when the program scheduling tabbeing selected.
 15. The method of claim 14, comprising: displaying a PTconstruction area and a TG construction area on the screen in responseto the program creation command; receiving from the user a selection ofa PT from the one or more PTs; displaying the selected PT in the PTconstruction area; allowing the user to define the plurality of pulsesin each PB of the one or more PBs of the selected PT; receiving from theuser a selection of a TG from the one or more TGs; displaying theselected TG in the TG construction area; and allowing the user to definethe TG as a sequence of PTs each selected from the one or more PTs. 16.The method of claim 15, comprising receiving from the user a number ofrepetitions for the one or more PBs of each PT of the sequence of PTs.17. The method of claim 16, comprising receiving from the user an orderof the one or more PBs of each PT of the sequence of PTs.
 18. The methodof claim 14, comprising: displaying a program scheduling area on thescreen in response to the programming scheduling command; receiving fromthe user a selection of a program from the one or more neurostimulationprograms; displaying the selected program in the program schedulingarea; and allowing the user to schedule the selected program, includingspecifying time of delivery for each TG of the one or more TGs in theeach program.
 19. The method of claim 18, comprising allowing the userto specify a frequency of delivery of the each program.
 20. The methodof claim 18, comprising receiving from the user a selection of aplurality of neurostimulation programs from the one or moreneurostimulation programs to be run simultaneously.